<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NeuZephyr: D:/Users/Mgepahmge/Documents/C Program/NeuZephyr/include/NeuZephyr/Model.cuh Source File</title>
<link rel="icon" href="NZ_logo2.png" type="image/x-icon" />
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectlogo"><img alt="Logo" src="NZ_logo2.png"/></td>
  <td id="projectalign">
   <div id="projectname">NeuZephyr
   </div>
   <div id="projectbrief">Simple DL Framework</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_a7e6ee1ae3f772c9504a0b543f2027e2.html">Mgepahmge</a></li><li class="navelem"><a class="el" href="dir_e03f57e346cc4845a4c354a35630b169.html">Documents</a></li><li class="navelem"><a class="el" href="dir_231a0482af2b83c895f27ba7fe745141.html">C Program</a></li><li class="navelem"><a class="el" href="dir_0fa7fc3a0dfd304dbfc9dce9f6facfa2.html">NeuZephyr</a></li><li class="navelem"><a class="el" href="dir_e7295b03dab2e9cdf32139bd8ec2e607.html">include</a></li><li class="navelem"><a class="el" href="dir_657344ecc65cfc28732701509f8d8421.html">NeuZephyr</a></li>  </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
  <div class="headertitle"><div class="title">Model.cuh</div></div>
</div><!--header-->
<div class="contents">
<a href="_model_8cuh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#ifndef MODEL_CUH</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span><span class="preprocessor">#define MODEL_CUH</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#include &quot;<a class="code" href="_compute_graph_8cuh.html">ComputeGraph.cuh</a>&quot;</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespacenz_1_1nodes.html">nz::nodes</a>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span><span class="keyword">namespace </span>nz {</div>
<div class="foldopen" id="foldopen00187" data-start="{" data-end="};">
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="classnz_1_1_model.html">  187</a></span>    <span class="keyword">class </span>DL_API <a class="code hl_class" href="classnz_1_1_model.html">Model</a> {</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span>    <span class="keyword">public</span>:</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span>        <span class="keyword">friend</span> DL_API std::ostream&amp; <a class="code hl_function" href="namespacenz_1_1nodes.html#a42672c2d7708ae1d0c071fd9bef6c03c">operator&lt;&lt;</a>(std::ostream&amp; os, <a class="code hl_class" href="classnz_1_1_model.html">Model</a>&amp; model);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="classnz_1_1_model.html#abd63329d440cd96c832cbea7c7dfd133">  208</a></span>        <a class="code hl_function" href="classnz_1_1_model.html#abd63329d440cd96c832cbea7c7dfd133">Model</a>();</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span>        <a class="code hl_class" href="classnz_1_1_model.html">~Model</a>();</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span>        <a class="code hl_class" href="classnz_1_1data_1_1_tensor.html">Tensor</a>&amp; forward();</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span> </div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno">  282</span>        <span class="keywordtype">void</span> backward();</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno">  283</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno">  301</span>        <span class="keywordtype">void</span> update(<a class="code hl_class" href="classnz_1_1opt_1_1_optimizer.html">opt::Optimizer</a>* optimizer) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno">  302</span> </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno">  320</span>        Tensor::value_type getLoss() <span class="keyword">const</span>;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno">  321</span> </div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span>    <span class="keyword">private</span>:</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno">  323</span>        std::vector&lt;Node*&gt; hiddenNodes;</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno">  324</span> </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno">  325</span>        <a class="code hl_class" href="classnz_1_1graph_1_1_compute_graph.html">graph::ComputeGraph</a> computeGraph;</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno">  326</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno">  327</span>    <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno">  351</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Add(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* lhs, <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* rhs);</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno">  352</span> </div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno">  376</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Sub(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* lhs, <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* rhs);</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno">  377</span> </div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno">  401</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Mul(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* lhs, <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* rhs);</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno">  402</span> </div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno">  433</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Bias(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno">  434</span> </div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno">  466</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Reshape(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keyword">const</span> <a class="code hl_class" href="classnz_1_1data_1_1_dimension.html">Tensor::shape_type</a>&amp; shape);</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span> </div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno">  501</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Linear(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keywordtype">size_t</span> outSize);</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno">  502</span> </div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno">  530</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1data.html#a4706224f5e7c9a0cfe4c74983aaef1bd">ReLU</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno">  531</span> </div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno">  559</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#a21bbbcf6d97bfaccc828ce7736814bd4">Sigmoid</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno">  560</span> </div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno">  588</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#aeb7d10939b25508e0b5db1fe44f4b467">Tanh</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno">  589</span> </div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno">  619</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#a04246c5218530f789a0ed4811b7ef3f3">LeakyReLU</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keywordtype">float</span> alpha = 0.01f);</div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno">  620</span> </div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno">  648</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#a997aa5460fd64fadf9b701fbf73e3fb2">Swish</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno">  649</span> </div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno">  679</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1data.html#adae3ca94a8c203f1e444751a1cba0d6d">ELU</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keywordtype">float</span> alpha = 1.0f);</div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno">  680</span> </div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno">  710</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#a52e449285e560185378234aecaf2f87c">HardSigmoid</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keywordtype">float</span> alpha = 0.2f, <span class="keywordtype">float</span> beta = 0.5f);</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno">  711</span> </div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno">  741</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#aef9c028ed356b5684e103639bb23bcf0">HardSwish</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keywordtype">float</span> alpha = 0.2f, <span class="keywordtype">float</span> beta = 0.5f);</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno">  742</span> </div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno">  770</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* <a class="code hl_function" href="namespacenz_1_1krnl.html#adbafc409d57fa0a9d78ecac5bf7b10a3">Softmax</a>(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno">  771</span> </div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno">  802</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* TargetExpand(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <span class="keyword">const</span> <a class="code hl_class" href="classnz_1_1data_1_1_dimension.html">Tensor::shape_type</a>&amp; shape);</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno">  803</span> </div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno">  842</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Img2Col(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, Tensor::size_type kernelHeight, Tensor::size_type kernelWidth,</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno">  843</span>                      Tensor::size_type stride, Tensor::size_type padding);</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno">  844</span> </div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno">  878</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Col2Img(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, Tensor::size_type outputHeight, Tensor::size_type outputWidth);</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno">  879</span> </div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno">  929</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* Conv2d(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, Tensor::size_type outChannels, Tensor::size_type kernelHeight,</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno">  930</span>                     Tensor::size_type kernelWidth,</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno">  931</span>                     Tensor::size_type stride, Tensor::size_type padding, <span class="keywordtype">bool</span> bias = <span class="keyword">true</span>);</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno">  932</span> </div>
<div class="line"><a id="l00959" name="l00959"></a><span class="lineno">  959</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* AvgPool2d(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, Tensor::size_type poolSize, Tensor::size_type stride,</div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno">  960</span>                        Tensor::size_type padding = 0);</div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno">  961</span> </div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno">  962</span> </div>
<div class="line"><a id="l00986" name="l00986"></a><span class="lineno">  986</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* GlobalAvgPool2d(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l00987" name="l00987"></a><span class="lineno">  987</span> </div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* MaxPool2d(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, Tensor::size_type poolSize, Tensor::size_type stride,</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span>                        Tensor::size_type padding = 0);</div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> </div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span>        <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* GlobalMaxPool2d(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"> 1041</span> </div>
<div class="line"><a id="l01074" name="l01074"></a><span class="lineno"> 1074</span>        <span class="keywordtype">void</span> MSELoss(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* target);</div>
<div class="line"><a id="l01075" name="l01075"></a><span class="lineno"> 1075</span> </div>
<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span>        <span class="keywordtype">void</span> BCELoss(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input, <a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* target);</div>
<div class="line"><a id="l01109" name="l01109"></a><span class="lineno"> 1109</span> </div>
<div class="line"><a id="l01146" name="l01146"></a><span class="lineno"> 1146</span>        <span class="keywordtype">void</span> defaultOutput(<a class="code hl_class" href="classnz_1_1nodes_1_1_node.html">Node</a>* input);</div>
<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"> 1147</span>    };</div>
</div>
<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span>}</div>
<div class="line"><a id="l01149" name="l01149"></a><span class="lineno"> 1149</span> </div>
<div class="line"><a id="l01150" name="l01150"></a><span class="lineno"> 1150</span> </div>
<div class="line"><a id="l01151" name="l01151"></a><span class="lineno"> 1151</span><span class="preprocessor">#endif </span><span class="comment">//MODEL_CUH</span></div>
<div class="ttc" id="a_compute_graph_8cuh_html"><div class="ttname"><a href="_compute_graph_8cuh.html">ComputeGraph.cuh</a></div><div class="ttdoc">Defines the ComputeGraph class for constructing and managing computational graphs in neural network m...</div></div>
<div class="ttc" id="aclassnz_1_1_model_html"><div class="ttname"><a href="classnz_1_1_model.html">nz::Model</a></div><div class="ttdoc">Base class for constructing neural network models with automatic computation graph management.</div><div class="ttdef"><b>Definition</b> <a href="#l00187">Model.cuh:187</a></div></div>
<div class="ttc" id="aclassnz_1_1_model_html_abd63329d440cd96c832cbea7c7dfd133"><div class="ttname"><a href="classnz_1_1_model.html#abd63329d440cd96c832cbea7c7dfd133">nz::Model::Model</a></div><div class="ttdeci">Model()</div><div class="ttdoc">Default constructs Model instance with empty computation graph.</div></div>
<div class="ttc" id="aclassnz_1_1data_1_1_dimension_html"><div class="ttname"><a href="classnz_1_1data_1_1_dimension.html">nz::data::Dimension</a></div><div class="ttdoc">Represents a multi - dimensional shape, typically used in deep learning for tensor dimensions.</div><div class="ttdef"><b>Definition</b> <a href="_dimension_8cuh_source.html#l00057">Dimension.cuh:57</a></div></div>
<div class="ttc" id="aclassnz_1_1data_1_1_tensor_html"><div class="ttname"><a href="classnz_1_1data_1_1_tensor.html">nz::data::Tensor</a></div><div class="ttdoc">A class for representing and manipulating multidimensional arrays (tensors) in GPU memory.</div><div class="ttdef"><b>Definition</b> <a href="_tensor_8cuh_source.html#l00134">Tensor.cuh:134</a></div></div>
<div class="ttc" id="aclassnz_1_1graph_1_1_compute_graph_html"><div class="ttname"><a href="classnz_1_1graph_1_1_compute_graph.html">nz::graph::ComputeGraph</a></div><div class="ttdoc">Represents a computational graph, which manages nodes and the computation flow.</div><div class="ttdef"><b>Definition</b> <a href="_compute_graph_8cuh_source.html#l00224">ComputeGraph.cuh:224</a></div></div>
<div class="ttc" id="aclassnz_1_1nodes_1_1_node_html"><div class="ttname"><a href="classnz_1_1nodes_1_1_node.html">nz::nodes::Node</a></div><div class="ttdoc">Base class for nodes in a neural network or computational graph.</div><div class="ttdef"><b>Definition</b> <a href="_nodes_8cuh_source.html#l00114">Nodes.cuh:114</a></div></div>
<div class="ttc" id="aclassnz_1_1opt_1_1_optimizer_html"><div class="ttname"><a href="classnz_1_1opt_1_1_optimizer.html">nz::opt::Optimizer</a></div><div class="ttdoc">Base class for optimization algorithms in deep learning.</div><div class="ttdef"><b>Definition</b> <a href="_optimizer_8cuh_source.html#l00125">Optimizer.cuh:125</a></div></div>
<div class="ttc" id="anamespacenz_1_1data_html_a4706224f5e7c9a0cfe4c74983aaef1bd"><div class="ttname"><a href="namespacenz_1_1data.html#a4706224f5e7c9a0cfe4c74983aaef1bd">nz::data::ReLU</a></div><div class="ttdeci">std::enable_if_t&lt; is_valid_tensor_type&lt; T &gt;::value, T &gt; ReLU(T &amp;input)</div><div class="ttdoc">Apply the Rectified Linear Unit (ReLU) activation function element-wise to an input tensor.</div><div class="ttdef"><b>Definition</b> <a href="_tensor_operations_8cuh_source.html#l00050">TensorOperations.cuh:50</a></div></div>
<div class="ttc" id="anamespacenz_1_1data_html_adae3ca94a8c203f1e444751a1cba0d6d"><div class="ttname"><a href="namespacenz_1_1data.html#adae3ca94a8c203f1e444751a1cba0d6d">nz::data::ELU</a></div><div class="ttdeci">std::enable_if_t&lt; is_valid_tensor_type&lt; T &gt;::value, T &gt; ELU(T &amp;input, const float alpha=1.0f)</div><div class="ttdoc">Apply the Exponential Linear Unit (ELU) activation function element-wise to an input tensor.</div><div class="ttdef"><b>Definition</b> <a href="_tensor_operations_8cuh_source.html#l00241">TensorOperations.cuh:241</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a04246c5218530f789a0ed4811b7ef3f3"><div class="ttname"><a href="namespacenz_1_1krnl.html#a04246c5218530f789a0ed4811b7ef3f3">nz::krnl::LeakyReLU</a></div><div class="ttdeci">void LeakyReLU(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=0.01f)</div><div class="ttdoc">Kernel function to apply the Leaky ReLU activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00315">OperationKernels.cu:315</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a21bbbcf6d97bfaccc828ce7736814bd4"><div class="ttname"><a href="namespacenz_1_1krnl.html#a21bbbcf6d97bfaccc828ce7736814bd4">nz::krnl::Sigmoid</a></div><div class="ttdeci">void Sigmoid(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Sigmoid activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00263">OperationKernels.cu:263</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a52e449285e560185378234aecaf2f87c"><div class="ttname"><a href="namespacenz_1_1krnl.html#a52e449285e560185378234aecaf2f87c">nz::krnl::HardSigmoid</a></div><div class="ttdeci">void HardSigmoid(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=0.2f, float beta=0.5f)</div><div class="ttdoc">Kernel function to apply the Hard Sigmoid activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00403">OperationKernels.cu:403</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_a997aa5460fd64fadf9b701fbf73e3fb2"><div class="ttname"><a href="namespacenz_1_1krnl.html#a997aa5460fd64fadf9b701fbf73e3fb2">nz::krnl::Swish</a></div><div class="ttdeci">void Swish(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Swish activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00344">OperationKernels.cu:344</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_adbafc409d57fa0a9d78ecac5bf7b10a3"><div class="ttname"><a href="namespacenz_1_1krnl.html#adbafc409d57fa0a9d78ecac5bf7b10a3">nz::krnl::Softmax</a></div><div class="ttdeci">void Softmax(dim3 gridDim, dim3 blockDim, float *out, float *in, float exp_sum_of_input, unsigned long long n, size_t offset=0)</div><div class="ttdoc">Kernel function to apply the Softmax function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00525">OperationKernels.cu:525</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aeb7d10939b25508e0b5db1fe44f4b467"><div class="ttname"><a href="namespacenz_1_1krnl.html#aeb7d10939b25508e0b5db1fe44f4b467">nz::krnl::Tanh</a></div><div class="ttdeci">void Tanh(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n)</div><div class="ttdoc">Kernel function to apply the Tanh activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00289">OperationKernels.cu:289</a></div></div>
<div class="ttc" id="anamespacenz_1_1krnl_html_aef9c028ed356b5684e103639bb23bcf0"><div class="ttname"><a href="namespacenz_1_1krnl.html#aef9c028ed356b5684e103639bb23bcf0">nz::krnl::HardSwish</a></div><div class="ttdeci">void HardSwish(dim3 gridDim, dim3 blockDim, float *out, float *in, unsigned long long n, float alpha=0.2f, float beta=0.5f)</div><div class="ttdoc">Kernel function to apply the Hard Swish activation function on the GPU.</div><div class="ttdef"><b>Definition</b> <a href="_operation_kernels_8cu_source.html#l00445">OperationKernels.cu:445</a></div></div>
<div class="ttc" id="anamespacenz_1_1nodes_html"><div class="ttname"><a href="namespacenz_1_1nodes.html">nz::nodes</a></div><div class="ttdoc">Contains classes and functionality for nodes in a neural network or computational graph.</div></div>
<div class="ttc" id="anamespacenz_1_1nodes_html_a42672c2d7708ae1d0c071fd9bef6c03c"><div class="ttname"><a href="namespacenz_1_1nodes.html#a42672c2d7708ae1d0c071fd9bef6c03c">nz::nodes::operator&lt;&lt;</a></div><div class="ttdeci">std::enable_if_t&lt; std::is_base_of_v&lt; Node, T &gt;, std::ostream &amp; &gt; operator&lt;&lt;(std::ostream &amp;os, const T &amp;node)</div><div class="ttdoc">Overloads the &lt;&lt; operator to print information about a node.</div><div class="ttdef"><b>Definition</b> <a href="_nodes_8cuh_source.html#l00114">Nodes.cuh:352</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>
